/*
 * 文件名：CacheManagerFactory.java
 * 
 * @author pengl
 * 版权： 航天恒星科技有限公司
 * 描述：缓存工厂类
 * 修改时间：2015年11月24日
 * 修改内容：〈修改内容〉
 */
package com.c503.sc.mytest.common.utils;

import com.c503.sc.mytest.common.constant.SysCommonConstant;
import com.c503.sc.utils.basetools.C503PropertiesUtils;
import com.c503.sc.utils.cache.CacheFactory;
import com.c503.sc.utils.cache.CacheManager;

/**
 * 文件名：CacheManagerFactory.java
 * 
 * @author pengl 版权： 航天恒星科技有限公司 描述：缓存管理器工厂类 修改时间：2015年11月24日 修改内容：〈修改内容〉
 */
public final class CacheManagerFactory {

	/** 缓存类型 */
	private static String cacheType;

	/** 缓存类型 */
	private static CacheManager manager;

	/**
	 * 私有化构造函数
	 * 
	 * @version [版本号, 2015年11月09日]
	 * @since [产品/模块版本]
	 */
	private CacheManagerFactory() {

	}

	/**
	 * 〈一句话功能简述〉使用内部类创建单例形式 〈功能详细描述〉
	 * 
	 * @author tul
	 * @version [版本号, 2015年12月1日]
	 * @see [相关类/方法]
	 * @since [产品/模块版本]
	 */
	private static class CacheUtilContainer {

		/*** 缓存管理工场 */
		private static CacheManagerFactory instence = new CacheManagerFactory();
	}

	/**
	 * 
	 * 〈一句话功能简述〉获取单例 〈功能详细描述〉
	 * 
	 * @return CacheManagerFactory 缓存工程了对象
	 * @see [类、类#方法、类#成员]
	 */
	public static CacheManagerFactory getInstence() {
		return CacheUtilContainer.instence;
	}

	/**
	 * 初始化获取具体的缓存类型
	 * 
	 * @version [版本号, 2015年11月09日]
	 * @since [产品/模块版本]
	 */
	static {
		try {
			cacheType = C503PropertiesUtils.getValue(SysCommonConstant.CLIENT_CONFIG_FILENAME, "cache.auth.type");
			manager = CacheFactory.getInstence(cacheType);
		} catch (Exception ex) {
			cacheType = "DEFAULT";
		}
	}

	/**
	 * 获取具体的缓存管理器
	 * 
	 * @return CacheManager
	 * @version [版本号, 2015年11月09日]
	 * @since [产品/模块版本]
	 */
	public CacheManager getCacheManager() {
		return manager;
	}

}
